Is it bad to be the only person supporting software you have developed?

My employer has a need for a web-based application to manage and share data within the department, with approximately 50-75 possible users. I feel I have the ability to write it for them. I would likely use Python/Django with a MySQL database, so it would be open source. However, I’m the only IT person in my department (our larger organization has a separate IT support staff with which I often work, but not for web development). I want to develop this application, but if I leave in 1-2 years, and someone else has to come in after me and support it, will this be seen as a bad decision?

This is assuming all the obvious points — I will write documentation, I will comment my code, and I will strive to follow good application design principles. But will that be enough? In principle, is it acceptable for one person to develop and support an entire web application? Is this a “do first, then show and ask” kind of situation, or should I be certain it will be adopted by everyone involved first?

With regards to specifics, I work in an academic department of a university that has specific processes for student applicants and for their being admitted. You have to apply to the university, AND my department separately. The department-specific process is very manual and pieced together, which is where my development would come in. We (myself and IT) are already planning on incorporating the additional questions that pertain to my department into the main university application (which IS electronic, and feeds into PeopleSoft), so that solves the front-end piece and everything would be in one place. But for the faculty and staff to acquire and “digest” that information throughout the admissions process will require an application of some sort, which I would prefer to do “my way”. The IT staff want to develop it ALL in PeopleSoft, and I fear it will be too inflexible and will not be well received by our department, and may still not completely meet our needs. There are third-party solutions which meet this need perfectly but they are cost-prohibitive. I would query the data from PeopleSoft and present it how I know the faculty and staff need to see it. (Getting access to query PeopleSoft is a different battle altogether.)

6

If your employer has an IT department your development may lead to some political unhappiness 🙂

Where will your site be hosted? Trying to hand some external development off to the IT folks could be problematic.

I would suggest having your department head put in a request for IT to drive such development and that you try to get involved with it.

Most organisations have a set method / SDLC they follow and may have some set technology choices that do not include those that you are familiar with.

At the very least get the OK from IT to continue with something like this.

1

I would say some of my best engineers came from doing exactly what you are describing. Being placed in a position where you get to make these decisions (many engineers in larger organizations don’t get those kinds of choices) helps increase your level of understanding by leaps and bounds.

Yes – it’s a little more stress. But this will be something you created, it gives you incentive and a strong desire to learn, and an ability to hone your skills for learning how to learn.

I’ve led too many teams where engineers rely on the answers others provide without critical thought to the implications.

This project sounds like a great way to build not only your development skill set, but your technical leadership skill set, your open source skill set, your critical thinking skill set.

You will also learn something all the other developers rarely learn … what it is to maintain an application that you yourself wrote! You know how differently you approach software development when you have to eat your own dog food?

One of my requirements for Jr and even Sr engineers is that they maintain the software that they may one day develop on.

1

Being a sole developer is a blessing and a curse. Many people will never get the opportunity though so take it and you will learn a great deal by having to maintain your own mistakes, feeling the pain you will learn many things folks in large corporations never do. The curse part is that you will not get the outside input that can sometimes accelerate you’re ability to apply new solutions which you wouldn’t have recognized on your own. Moral of the story, take the rare opportunity, but don’t stay at it too long as the insularity can cement bad habits without folks to correct you. Also make sure to be active in online communities with other developers to get as much of that feedback as you can. See https://codereview.stackexchange.com/ for this purpose and perhaps search for a forum you can share ideas and get discussion on.

Given your problem scope you need to look into two tools types of which there are many and utilizing these to create your solution will yield a far stabler more comprehensive solution: ETL (Extract Transform Load), and a Reporting Engine. Try to do as little custom work as possible, this will minimize your maintenance work and though integrating tools together may not seem as glamorous as hacking out your own solution, it will display a higher aptitude for seeing the whole picture and recognizing the value of a problem being solved is greater than a solution being made.

The problem domain you detailed is a very common one and it is known in industry by the term “Business Intelligence”.

What you want to do is extract data from the peoplesoft database, transform it into useful aggregates for your purposes, and load it into your own MySql database. Following that, you want to generate reports off that MySql database to display information in a useful manner to your colleagues. Usually reporting engines will have things like schedulable executions, and optional automatic e-mails of said reports etc, these are the robustness and comprensiveness features it’s nice to get from a reporting engine rather than hand-writing something.

Here are some open source reporting engines I was able to dig up (I know nothing about any of them, the analysis of these solutions and others you may find is on you). Note, there is a significant difference between “charting” and “reporting”. Do not confuse the ideas and think reporting just means pretty graphs which won’t convey all your information, that’s charting. Reporting refers to generating reports with both tabular data and graphs as well as any general information you want to display as you would expect in a report.

Python:

  • Gerald Reports – http://www.geraldoreports.org/
  • PyRep – http://code.google.com/p/pyrep/
  • RLib – http://rlib.sicompos.com/

Solutions in other languages may interoperate well with python so don’t ignore them until you do your technical analysis.

Java:

  • BIRT – http://www.eclipse.org/birt/phoenix/
  • Jasper – http://www.jaspersoft.com/
  • Pentaho – http://www.pentaho.com/
  • G2 – http://code.google.com/p/g2-report-engine/

C++:

  • ReportLab – http://www.reportlab.com/
  • OOFILE – http://www.oofile.com.au/reportwriter.html

This question talks about reporting engines with opinions:
https://stackoverflow.com/questions/126622/open-source-reporting-engines

Here are some quick ETL solutions I found.

  • petl – http://packages.python.org/petl/0.11.1/index.html
  • pygrametl – http://pygrametl.org/
  • Simplistic Python ETL – http://www.ohloh.net/p/etlpy

Trust me I have been in your shoes and yes I have maintained the application that I had developed earlier. From my experience I think that a senior could fasten the learning process on the best approaches to a given problem but this will pay off itself as you start finding such approaches with experience. This will enable you to be more self reliant than other developers as you will be a part of every stage of the SDLC ( Requirement Gathering to Maintenance ). This overall experience will also help you know which part of development you enjoy the most and focus more on that!

I want to develop this application, but if I leave in 1-2 years, and someone else has to come in after me and support it, will this be seen as a bad decision?

No – If you follow the obvious points you mentioned ( document, comments and good design ).

In principle, is it acceptable for one person to develop and support an entire web application?

Yes – If I understand correctly, you already have experience in development but not necessarily in the web domain. This will be a good opportunity to hone you skills on a web technology. One thing to remember is that since it is a new horizon, you have to take the criticism from the users with a pinch of salt.

Is this a “do first, then show and ask” kind of situation, or should I be certain it will be adopted by everyone involved first?

I think you can clarify your understanding in the beginning as much as possible and then increase the visibility by making a prototype with the basic functionality and ask for the user’s feedback. Change your approach if required and then plunge to a full fledged development.

Wish you all the best!

“Bad”? No. “Ideal”? Nope.

Depending on the impact of this application among the user base, a single person could certainly handle the maintenance of this. And any incoming replacements could as well. I’d say give the project a try, but stress all along the way your desire to temper expectations (the amount of time/effort required for feature requests or bug fixes, coupled with any other “duties as assigned.”).

The downside – from the company’s perspective, and you probably wouldn’t enjoy it either – is the possibility of a “bus error”. The chance that the one person who knows how the app works (you) gets hit by a bus, and suddenly the company has 0 people who know how the app works but is still depending on it.

If I were your managers, I’d be asking how critical this tool will be to try and understand the severity of the risk, and definitely whether there’s some off-the-shelf tool that’ll do the same work but be easier or cheaper to support.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật