Written by: Stefan Bradstreet
In short a professional Python and software developers primary responsibility is to design and create code that will solve problems facing a customer or the business they work for. Python is chosen as the coding language for the application because of its platform independence, library availability, and simplified syntax allowing a developer to implement a solution in a quicker time with less lines of code. This is important when the work done to automate a repetitive task can be done in less time than if the person doing this task were to continue doing it themselves. The Python code creates a positive return on investment and long term value for the end user of the application. A developer recognizes these opportunities by thinking through problems, collecting requirements, and creating software solutions for the people affected by those problems while maintaining and extending the companies existing software.
In the rest of this article I’ll dive deeper into what a developer does and how a business can benefit from having python developers by presenting a business challenge that Steve has. Then I’ll present a way a developer can solve that problem with python and scale it by bringing on an additional developer.
Python to save the day for M-Co
Lets walk through an example problem faced by a hypothetical business where thinking pythonically can generate long term value and opportunity for the company.
Steve Lysist, the overwhelmed analyst
I’d like to introduce you to Steve. He is an analyst that works for a fresh new upcoming marketing company called M-Co. M-Co aims to boost sales for their clients through search engine optimization and social networking experiments.
Every week Steve is expected to create reviews of M-Co’s clients to determine if M-Co is doing a good job with their existing strategies or if they need to make adjustments. Steve downloads data on each client’s website traffic and their corresponding sales, analyzes this data, creates reports, and emails them out to managers so they can use this data to drive business intelligence decisions and create new strategies based on the weekly trends. This typically takes Steve an hour to do for each of the companies 12 clients totally 12 hours. With his other responsibilities Steve is working on average 50 hours a week. Good work Steve!
M-Co has been growing pretty quickly recently after being mentioned in a popular website. With this hype, the company is planning on adding one to two clients per week for the next couple of months as the popularity of M-Co rises. At this rate after two months Steve will be working 20 to 28 hours a week creating the weekly report. His other responsibilities will also grow with the added clients. Steve is already feeling overwhelmed and stressed. Sorry Steve.
Tyler Phon, the heroic developer
One day Tyler and Steve went out to lunch and they got to talking about his reports and Tyler instantly knew he could help Steve. As soon as he got back to lunch he put together a proposal of the python program he could write that would automate the data collection and generation of the reports.
The proposal was to write a python program that Steve could run once per week following Tyler’s clear documentation he would provide. The script would do the following that Steve was doing manually before:
- Call an API to get the number of people that visited their clients website and the website keyword data
- Use another API to get their clients sales numbers
- Use an internal API to get the M-Co super secret marketing strategy data
- Parse and join all of this data into a spreadsheet similar to what Steve was making before
The program could even handle sending out the reports but Tyler thought it would be a good idea for Steve to review the output of his scripts before sending them to the managers. After a few weeks of making sure the auto generated reports were good Tyler could go back and enable the ability to email them to the managers automatically.
Now one of the main benefits of this work by Tyler is that in order to on-board a new client, you would only need to add their company name to a data structure within the script and their reports would be created as well. This would give Steve back the 12 hours he was using to make these reports to focus on other specialized ways he could add value to the clients. It would also help M-Co scale to provide the same level of standards for new clients without extra time investment from Steve.
Tyler presented his proposal to the M-Co managers. He told the managers that he estimated the script could be made in a few days and would save the company hundreds of hours of manually creating these reports over the next year and foreseeable future.
After getting the manager’s approval Tyler created his software. He took great care to make sure the person running the script would know if anything failed during its run-time. The program would even email Tyler the application logs if it did so that he could proactively create hot-fixes if any of the APIs changed their data response contracts. He delivered the software to Steve and the documentation; then showed him how to run it to create the reports Steve was supposed to create tomorrow. He also showed Steve where in the code he would need to update when he needs to add a new client. They created all of Steve’s reports that week in an astounding 5 minutes of the application running. Steve ran around the room in excitement at how game changing this would be for their company and him, then offered to take Tyler out for a few drinks to celebrate!
After a few weeks they gained enough trust in Tyler’s software and Tyler updated the program to go ahead and send out the report emails without the manual review. Now Steve just needs to run the script on Friday, monitor its progress, and the reports generate themselves. Very cool!
M-Co 6 months later
It has been an exciting 6 months for M-Co. After the viral blog post about their company their total clients is now 50 and still growing. Tyler’s program has been working well for Steve to create the reports for all 50 clients each week. There were a few times Tyler needed to make some tweaks to the program after he got emailed the error details. The first time was a parsing error from weird data he didn’t see in development. The other time it turned out the sales report returned by the customers API was formatted differently than what was communicated it should be. After working to update the response object it was up and running again.
But now this time the managers are coming to Tyler and telling him they are having difficulty finding the reports each week in their inbox, reviewing every single one, and making business decisions from the 50 reports the program outputs.
This is a typical scale problem you can expect as a company grows. Tyler clearly communicates everything he is working on and presents a verbal straw-man plan of how they can convert the python program into a web-application that the managers can log onto. Notifications can be built into the application to drive the business decisions. They can even start using machine learning with python libraries to automate some of the decision making since the business has acquired a lot of existing data on their strategies and expected performance.
Tyler then tells them this would be too much work for just him with his other responsibilities and that they should hire a junior developer. M-Co stakeholders approve, their HR lines up interviews for Tyler and an M-Co manager. After going through several candidates they find a junior developer that shows good computer science background during the technical coding problem, positive energy and attitude, and has existing experience making a python based web-application as part of her self teaching. The HR presents her the offer and after a bit of renegotiation she accepts the position.
Jane Roberts, Jr Developer
The first day on the job Jane goes through the companies standard new hire orientation presented by M-Co’s human resource leaders. They go through the basic paperwork for taxes, employment expectations, and a summary of the companies culture and mission statements to drive positive marketing experiences for their clients. Later that afternoon she meets Tyler who will be mentoring her on the task of converting the report scripts into an internal web-application for the managers. He gives her a brief run down of the problem and the desired outcome and tells her she is happy to have her help!
The next day she comes in a little nervous but excited to start diving into the web-application. She ramps up on the problem and the work breakdown tasks given to her by Tyler. She reads through the existing scripts and puts some thought into how these can be turned into libraries to use by the web application she will make. She spends several weeks learning a python web-application framework, how to create front end pages for the managers to get the reports, and how to deploy the web application somewhere that is accessible only to the people within M-Co.
Everyday her and Tyler meet up for a brief stand-up where they talk about what they are working on and any challenges they are facing. This gives Jane an opportunity to get help and also learn what Tyler is working on to get more perspective of the challenges facing the company they can solve together. Tyler also reports to Jane any new problems that are coming up from the meetings he sits in with the senior managers of the organization. This allows Jane more time to focus on coding and grow her leadership within the organization.
After several more scripts she has been able to deploy the web application, create a login management system for only M-Co employees to access her site, and she has made a web page that will kick off report generations of Tylers original scripts. This eliminates the need for Steve to run these on his own and the managers don’t need to track the emails that get sent and instead they are able to generate the reports on demand. Tyler and Jane have plans to run the reports on a schedule and build in the machine learning to give automated guidance over the next month. M-Co couldn’t be more pleased by the results of Jane’s portal and how the software team will grow it. Congratulations team!
While there are many more things that go into python development and career growth, I hope this scenario I provided has been helpful in showing how company requirements can grow and how developers work to help a company scale with their growth. This story is loosely based on my own experiences I’ve had with python development in a growing organization. Python developers in different disciplines such as heavy machine learning theory are likely to have completely different responsibilities but are also likely to have a title other than developer.
About Stefan Bradstreet
Stefan is a software development engineer II at Amazon with 5+ years of experience in tech. He is passionate about helping people become better coders and climbing the ranks in their careers as well as his own through continued learning of leadership techniques and software best practices.
Thank you for visiting!
Please remember if you found this content useful and would like to see more python and software development articles from us, help us conquer the google algorithm in any of the ways below:
- Comment your thoughts below
- Share this on your social media
- follow me on twitter
- subscribe to our Youtube channel
- Contact me on the service page for coaching
- Shop through our affiliate links: Python crash course book
- Join as a patron https://www.patreon.com/beapythondev for more exclusive content and my personal weekly schedule and notes I use to keep growing as a SDE
If you didn’t find what you expected feel free to use the contact page and let us know ways we can improve or what would help you grow as a developer better! I am honored by every view and it takes a village to really make this great.